package cn.ainit.sys.framework.save;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import cn.ainit.common.ReturnObject;
import cn.ainit.sys.framework.entity.SysButtons;
import cn.ainit.sys.framework.entity.SysColumns;
import cn.ainit.sys.pages.config.entity.ConfigObject;
import cn.ainit.sys.query.datastore.DataStore;
import cn.ainit.sys.query.entity.QueryJson;

public interface CommonSaveService {
	
	/***
	 * 测试语句
	 * @param string
	 * @throws Exception
	 * @author Xuzq
	 * @date 2014-4-8 下午03:41:13
	 */
	boolean testSave(String string) throws Exception;
	/**
	 * 保存数据
	 * @param string
	 * @param values
	 * @return
	 * @throws Exception
	 * @author Xuzq
	 * @date 2014-4-8 下午04:48:57
	 */
	boolean saveObj(String string, List<String> values) throws Exception;
	/**
	 * 查找字段
	 * @param dsId
	 * @return
	 * @throws Exception
	 * @author Xuzq
	 * @date 2014-4-8 下午06:49:51
	 */
	List<SysColumns> loadColumns(String dsId) throws Exception;
	/***
	 * 加载Ds对象
	 * @param dsId
	 * @return
	 * @throws Exception
	 * @author Xuzq
	 * @date 2014-4-8 下午06:50:17
	 */
	DataStore loadDS(String dsId) throws Exception;
	/***
	 * 更新数据
	 * @param sql
	 * @param cValues
	 * @param wValues
	 * @return
	 * @throws Exception
	 * @author Xuzq
	 * @date 2014-4-10 下午02:02:27
	 */
	boolean updateObj(String sql, List<String> cValues, List<String> wValues) throws Exception;
	/**
	 * 通用保存
	 * @param tableName
	 * @param recordMap
	 * @throws Exception
	 * @author Xuzq
	 * @param session 
	 * @date 2014-4-14 下午03:15:33
	 */
	ReturnObject saveComm(String diu,String dsid, Map recordMap, HttpSession session) throws Exception;
	
	/**
	 * 通用弹窗
	 * @param tableName
	 * @param recordMap
	 * @throws Exception
	 * @author Xuzq
	 * @param session 
	 * @date 2014-4-14 下午03:15:33
	 */
	ReturnObject saveCommDG(String djdsid, String fkid,String diu,String sinId, String dsid,Map mapRecord, HttpSession session) throws Exception;
	/***
	 * v2.0.0通用保存的优化
	 * @param receiveZMobj
	 * @param session
	 * @return
	 * @throws Exception
	 * @author Xuzq
	 * @date 2014-5-29 上午09:11:15
	 */
	ReturnObject saveCommU(ReceiveZM receiveZMobj, HttpSession session,HttpServletRequest request)throws Exception;
	/**
	 * 根据拼接的字符串返回一个where条件sql
	 * @param pjStr  拼接格式为  1-列名-值-类型inc/eq等|+
	 * @return
	 * @throws Exception
	 */
//	String returnSqlFunc(String pjStr) throws Exception;
	/***
	 * 保存关联外键的所有信息
	 * @param receiveList
	 * @param session
	 * @return
	 * @throws Exception
	 * @author Xuzq
	 * @date 2014-6-4 上午09:08:46
	 */
	ReturnObject saveCommL(ReceiveList receiveList, HttpSession session)throws Exception;
	/***
	 * 一对多保存弹窗
	 * @param omObj
	 * @param session
	 * @return
	 * @author Xuzq
	 * @throws Exception 
	 * @date 2014-6-21 下午04:51:52
	 */
	ReturnObject saveCommDGOTM(ReceiveOtM omObj, HttpSession session) throws Exception;
	
	
	
	
	
}
